home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Otherware
/
Otherware_1_SB_Development.iso
/
mac
/
hypercar
/
hamradio
/
extra23.sit
/
Extra Ham Test
/
background_2725.txt
< prev
next >
Wrap
Text File
|
1991-04-08
|
7KB
|
231 lines
-- background: 2725 from stack: in
-- bmap block id: 3199
-- flags: 4000
-- background id: 0
-- name: intro
----- HyperTalk script -----
on buildList -- ΓÇóΓÇóΓÇó rename to buildList1 if using sequential questions
-- or to buildList if using randomly-generated questions
global questlist,rightone,lockkey,questans,questkey
global sky1, sky2, sky3, sky4, sky5, sky6 -- used for saved ans key
-- initialization
set the cursor to 4
-- ΓÇóΓÇóΓÇóquestgrp contains the number of questions in each question group
-- and is used to generate random questions, one from each group.
-- Note that the question groups MUST BE sequential in order for this
-- to work. That is, group 1 must be the first 10 questions, group 2
-- must be the next 14 questions, and so on.
put "15,15,12,15,18,14,13,15,7,5," into questgrp
put "4,5,7,5,5,4,8,10,14,11," after questgrp
put "11,9,10,10,9,12,9,6,19,18," after questgrp
put "19,13,12,10,9,13,9,16,11,13" after questgrp
-- ΓÇóΓÇóΓÇó The number of commas in questans and questkey must be equal to
-- number of questions in each test minus one. For example, for a
-- 40-question test, there are 39 commas.
put ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,," into questans
put ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,," into questkey
put empty into questlist
put 0 into startgroup
put empty into sky1
put empty into sky2
put empty into sky3
put empty into sky4
put empty into sky5
put empty into sky6
set lockscreen to true
-- generate the questions from subgroups randomly
repeat with i = 1 to number of items of questgrp
put startgroup into thisquest
add the random of item i of questgrp to thisquest
put questlist & "#" & thisquest & "," into questlist
add item i of questgrp to startgroup
end repeat
delete last character of questlist
-- ΓÇóΓÇóΓÇó generate the answer key for these questions. this currently
-- only handles up to first 51 questions.
repeat with i = 1 to number of items of questlist
if i > 51 then exit repeat
put item i of questlist into thisquest
go to card thisquest
-- ΓÇóΓÇóΓÇó You can put the card # or the subelement # or question #
-- as question #in key
put "#" & i into x -- question # option
-- put the short name of this card into x -- card # option
-- put first word of field "Q1" into x -- subelement # option
put first word of field "Q1" into y -- used for answer key
if i < 18 then
put sky1&x&"("&y&")"&return into sky1
put sky2&rightone&return into sky2
else if i < 35 then
put sky3&x&"("&y&")"&return into sky3
put sky4&rightone&return into sky4
else
put sky5&x&"("&y&")"&return into sky5
put sky6&rightone&return into sky6
end if
end repeat
go to card savedscores
put sky1 into field key1
put sky2 into field key2
put sky3 into field key3
put sky4 into field key4
put sky5 into field key5
put sky6 into field key6
-- prevent buildList from being called again immediately
put true into lockkey
go to first card
set lockscreen to false
end buildList
on buildList1 -- ΓÇóΓÇóΓÇó rename to buildList for sequential questions or to
-- buildList1 for randomly-generated questions
global questlist,rightone,lockkey,questans,questkey
global sky1, sky2, sky3, sky4, sky5, sky6 -- used for saved ans key
-- initialization
set the cursor to 4
-- ΓÇóΓÇóΓÇó be sure that the group number of each question card matches the
-- question number. For example, question #1 is group 1, question
-- #2 is group 2, and so on.
put empty into questlist
put empty into questans
put empty into questkey
put empty into sky1
put empty into sky2
put empty into sky3
put empty into sky4
put empty into sky5
put empty into sky6
set lockscreen to true
repeat with i = 1 to number of cards of bkgnd Test
put "#" & i & "," after questlist
put "," after questans
put "," after questkey
end repeat
delete last character of questlist
delete last character of questans
delete last character of questkey
-- ΓÇóΓÇóΓÇó generate the answer key for these questions. This currently
-- only works for first 32 questions
repeat with i = 1 to number of items of questlist
if i > 51 then exit repeat
put item i of questlist into thisquest
go to card thisquest
-- ΓÇóΓÇóΓÇó You can put the card # or the subelement # or question # -- as question #in key
-- put "#" & i into x -- question # option
put the short name of this card into x -- card # option
-- put first word of field "Q1" into x -- subelement # option
put first word of field "Q1" into y -- used for answer key
if i < 18 then
put sky1&x&"("&y&")"&return into sky1
put sky2&rightone&return into sky2
else if i < 35 then
put sky3&x&"("&y&")"&return into sky3
put sky4&rightone&return into sky4
else
put sky5&x&"("&y&")"&return into sky5
put sky6&rightone&return into sky6
end if
end repeat
go to card savedscores
put sky1 into field key1
put sky2 into field key2
put sky3 into field key3
put sky4 into field key4
put sky5 into field key5
put sky6 into field key6
-- prevent buildList from being called again immediately
put true into lockkey
go to first card
set lockscreen to false
end buildList1
-- part 1 (button)
-- low flags: 00
-- high flags: 0000
-- rect: left=111 top=169 right=309 bottom=228
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 0
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: Exam
----- HyperTalk script -----
on mouseDown
ask "Please enter your name."
put it into field "user" of card report
-- ΓÇóΓÇóΓÇó change unlimited to # minutes to put a time limit on test
-- be sure to change background of questions and below also.
answer "You have unlimited minutes to take this test" with "OK"
end mouseDown
on mouseUp
global time1,score,check2,ok,questlist
set the cursor to 4
put empty into ok
put empty into score
put empty into check2
put empty into field QMissed of card report
get the long time
put it into field "Start" of Card "Report"
convert it to seconds
-- ΓÇóΓÇóΓÇó change 30 in next line to # of minutes desired for time limit
add 30*60 to it
put it into time1
-- put questlist into message -- for debug only
visual effect dissolve to black
visual effect dissolve
-- go card "#1" -- for debug only
get item 1 of questlist
go card it
end mouseUp
-- part 2 (button)
-- low flags: 00
-- high flags: 0000
-- rect: left=27 top=47 right=85 bottom=71
-- title width / last selected line: 0
-- icon id / first selected line: 1011 / 1011
-- text alignment: 1
-- font id: 0
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: Home
----- HyperTalk script -----
on mouseUp
visual effect iris close
go home
end mouseUp
-- part 4 (button)
-- low flags: 00
-- high flags: 0000
-- rect: left=431 top=55 right=94 bottom=472
-- title width / last selected line: 0
-- icon id / first selected line: 14767 / 14767
-- text alignment: 1
-- font id: 0
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: Tell Me About...
----- HyperTalk script -----
on mouseUp
push this card
visual effect iris open
go to card "About...."
end mouseUp